//
//  LYWBNavigationController.swift
//  智微博
//
//  Created by mac1 on 2017/4/17.
//  Copyright © 2017年 Y&Q. All rights reserved.
//

import UIKit

class LYWBNavigationController: UINavigationController {

  override func viewDidLoad() {
    super.viewDidLoad()
    
    
    // 隐藏默认的 navigationBar
    navigationBar.isHidden = true
    
    
  }
  
  
  /// 重写 push 方法, 所有的 push 动作都会调用此方法!
  /// ViewController 是被 push 的控制器, 设置他的左侧的按钮作为返回按钮
  override func pushViewController(_ viewController: UIViewController, animated: Bool) {
    print(viewController)
    
    //如果不是堆栈底控制器才需要隐藏, 跟控制器不需要处理
    // 隐藏底部的 Tabbar 
    if childViewControllers.count > 0 {
       viewController.hidesBottomBarWhenPushed = true
      
      //判断控制器的类型
      if let vc = viewController as? LYWBBaseViewController {
        
        var title = "返回"
        
        //判断控制器的级数, 只有一个自控制器的时候, 显示栈底控制器的标题
        if childViewControllers.count == 1 {
          
          // title 是显示首页的标题
          title = childViewControllers.first?.title ?? "返回"
        }
        
        //取出自定义的 nvaItem,设置左侧按钮作为返回按钮 如果是返回按钮 加上true
        //vc.navItem.leftBarButtonItem = UIBarButtonItem(title: title, target: self, action: #selector(popToParent))
        vc.navItem.leftBarButtonItem = UIBarButtonItem(title: title, target: self, action: #selector(popToParent),isBack:true)
      }

    }
    
    
    super.pushViewController(viewController, animated: true)
    
  }
  
  
  //pop 返回到上一级控制器
  @objc private func popToParent() {
    popViewController(animated: true)
  }
  
}
